//系统弹窗提示
window.openMsg = function(msg, time) {
	msg = msg || "系统提示";
	time = time || 3;
	var box = '<div id="errorMsg" class="eorrMsg"><p>' + msg
			+ '</p><p class="mt5">' + time + '秒后自动消失</p></div>';
	$('body').append(box);
	setTimeout(function() {
		$('#errorMsg').remove();
	}, time * 1000);
};

// 判断金额是否合法
function checkPrice(price) {
	return (/^(([1-9]\d*)|\d)(\.\d{1,2})?$/).test(price.toString());
}

//判断密码是否符合8-20位是否合法
function checkPassword(password) {
	return (/^(?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9]{8,20}$/).test(password.toString());
}

// 返回主页
function goBackMain() {
	window.jsInjectedObj.goBackMain();
}

$.extend({
	decimalFormat:function(obj) {
        var decimal = /^[-+]?\d{1,9}$|^\d{1,9}[.]\d{1,1}$/;//整数部分最多9位 小数部分最多1位
        return decimal.test(obj);
    },
    chinese:function(obj) {
        var chinese = /^[\u4e00-\u9fa5]+$/;
        return chinese.test(obj);
    },
    chrnum:function(obj) {
        var chrnum = /^([a-zA-Z0-9]+)$/;//只能输入数字和字母(字符A-Z, a-z, 0-9)
        return chrnum.test(obj);
    } ,
    num:function(obj) {
        var chrnum = /^([0-9]+)$/;//只能输入数字( 0-9)
        return chrnum.test(obj);
    } ,
    english:function(obj) {
        var chrnum = /^([a-zA-Z]+)$/;//只能输入数字和字母(字符A-Z, a-z)
        return chrnum.test(obj);
    } ,
    phone:function(obj) {
        var tel = /^0?1[3|4|5|8][0-9]\d{8}$/;
        return tel.test(obj);
    },
    emailLegal:function(obj) {
        var email = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
        return email.test(obj);
    },
    checkIdentityNo:function(identityNo) {  //校验身份证合法性
        var Wi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
        var Ai = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
        var msg = "";
        if (identityNo.length != 18 && identityNo.length != 15) {
            msg = "请输入正确的身份证号码!";
        } else if (identityNo.length == 18) {
            identityNo = identityNo.substr(0, 18);
            if (identityNo.charAt(17) == 'x') {
                identityNo = identityNo.replace("x", "X");
            }

            var checkDigit = identityNo.charAt(17);
            var cardNoSum = 0;

            for (var i = 0; i < identityNo.length - 1; i++) {
                cardNoSum = cardNoSum + identityNo.charAt(i) * Wi[i];
            }
            var seq = cardNoSum % 11;
            var getCheckDigit = Ai[seq];

            if (checkDigit != getCheckDigit) {
                msg = "您的身份证号码校验失败，请检查并重新输入!";
            }
        }
        return msg;
    }
});

// Description: 银行卡号Luhm校验
// Luhm校验规则：16位银行卡号（19位通用）:
// 1.将未带校验位的 15（或18）位卡号从右依次编号 1 到 15（18），位于奇数位号上的数字乘以 2。
// 2.将奇位乘积的个十位全部相加，再加上所有偶数位上的数字。
// 3.将加法和加上校验位能被 10 整除。
function cardNoCheck(cardNo) {
	if (cardNo.length < 16 || cardNo.length > 19) {
		return false;
	}
	var _numRule = /^\d*$/; // 全数字
	if (!_numRule.exec(cardNo)) {
		return false;
	}
	// 开头6位
	var strBin = "10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";
	if (strBin.indexOf(cardNo.substring(0, 2)) == -1) {
		return false;
	}
	var lastNum = cardNo.substr(cardNo.length - 1, 1);// 取出最后一位（与luhm进行比较）

	var first15Num = cardNo.substr(0, cardNo.length - 1);// 前15或18位
	var newArr = new Array();
	for ( var i = first15Num.length - 1; i > -1; i--) { // 前15或18位倒序存进数组
		newArr.push(first15Num.substr(i, 1));
	}
	var arrJiShu = new Array(); // 奇数位*2的积 <9
	var arrJiShu2 = new Array(); // 奇数位*2的积 >9

	var arrOuShu = new Array(); // 偶数位数组
	for ( var j = 0; j < newArr.length; j++) {
		if ((j + 1) % 2 == 1) {// 奇数位
			if (parseInt(newArr[j]) * 2 < 9)
				arrJiShu.push(parseInt(newArr[j]) * 2);
			else
				arrJiShu2.push(parseInt(newArr[j]) * 2);
		} else
			// 偶数位
			arrOuShu.push(newArr[j]);
	}

	var jishu_child1 = new Array();// 奇数位*2 >9 的分割之后的数组个位数
	var jishu_child2 = new Array();// 奇数位*2 >9 的分割之后的数组十位数
	for ( var h = 0; h < arrJiShu2.length; h++) {
		jishu_child1.push(parseInt(arrJiShu2[h]) % 10);
		jishu_child2.push(parseInt(arrJiShu2[h]) / 10);
	}

	var sumJiShu = 0; // 奇数位*2 < 9 的数组之和
	var sumOuShu = 0; // 偶数位数组之和
	var sumJiShuChild1 = 0; // 奇数位*2 >9 的分割之后的数组个位数之和
	var sumJiShuChild2 = 0; // 奇数位*2 >9 的分割之后的数组十位数之和
	var sumTotal = 0;
	for ( var m = 0; m < arrJiShu.length; m++) {
		sumJiShu = sumJiShu + parseInt(arrJiShu[m]);
	}
	for ( var n = 0; n < arrOuShu.length; n++) {
		sumOuShu = sumOuShu + parseInt(arrOuShu[n]);
	}
	for ( var p = 0; p < jishu_child1.length; p++) {
		sumJiShuChild1 = sumJiShuChild1 + parseInt(jishu_child1[p]);
		sumJiShuChild2 = sumJiShuChild2 + parseInt(jishu_child2[p]);
	}	// 计算总和
	sumTotal = parseInt(sumJiShu) + parseInt(sumOuShu)
			+ parseInt(sumJiShuChild1) + parseInt(sumJiShuChild2);
	// 计算Luhm值
	var k = parseInt(sumTotal) % 10 == 0 ? 10 : parseInt(sumTotal) % 10;
	var luhm = 10 - k;
	if (lastNum == luhm) {
		return true;
	} else {
		return false;
	}
}